#pragma once

#include "EncodedSymbol.h"

namespace Huffman {

	class DataStream
	{
	public:
		DataStream(void);
		~DataStream(void);
		
		virtual char read() =0;
		virtual bool readBit() =0;
		virtual void write(char data) =0;				
		virtual void writeBit(bool bit) =0;
		virtual void writeEncodedSymbol(EncodedSymbol* symbol) = 0;
		virtual void close() =0;

		virtual void flush() =0;
		virtual bool isEof() =0;
	};
}
